package com.zbkj.admin.service;

import com.github.pagehelper.PageInfo;
import com.zbkj.common.model.order.OrderDetail;
import com.zbkj.common.model.order.OrderInfo;
import com.zbkj.common.model.user.User;
import com.zbkj.common.request.order.AdminOrderQueryRequest;
import com.zbkj.common.request.order.AdminOrderSaveRequest;
import com.zbkj.common.request.order.OrderApprovalRequest;
import com.zbkj.common.response.UploadResponse;
import com.zbkj.common.response.order.AdminOrderResponse;
import com.zbkj.common.response.order.OrderSucceResponse;
import com.zbkj.common.response.order.UserRechargeResponse;
import com.zbkj.common.vo.MyRecord;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Auther:
 * @Date: 2024/9/16 01:06
 * @Description:
 */
public interface AdminOrderHandleService {
    UserRechargeResponse getUserRechargeInfo(String phone);

    PageInfo<AdminOrderResponse> list(AdminOrderQueryRequest paramRequest);

    OrderSucceResponse orderSave(AdminOrderSaveRequest saveRequest);

    void orderSaveHandle(OrderInfo orderInfo, List<OrderDetail> orderDetailList);

    void orderApproval(OrderApprovalRequest approvalRequest);

    /**
     *  更新订单状态处理
     * @param orderInfo
     * @param modifyStatus
     * @param checkStatusList
     * @param rejectReason
     */
    void orderStatusUpdate(OrderInfo orderInfo, Integer modifyStatus, List<Integer> checkStatusList, String rejectReason);

    void orderApprovalOpen(User user, OrderInfo orderInfo, List<OrderDetail> orderDetailList);

    UploadResponse payVoucheUpload(MultipartFile file);
}
